home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / YTC Cracking Library / revx1.txt < prev    next >
Text File  |  2000-05-25  |  4KB  |  87 lines

  1. Who needs this tutorial?
  2. Cracking newbies, esp. softice newbies trying to find working ser.
  3. nbrs. and/or right place to crack/patch.
  4. What do you need?
  5. A prog that shows you a nag screen when entering a wrong ser.nbr.
  6. (but should also work with "normal" nag screens with OK buttons -
  7. aka windows dialogs).
  8.  
  9. ---------------------------cut here------------------------------(fart here)
  10.  
  11. I call the following procedure the "break in - dive out" method.
  12. It's a general way to crack progs with serial numbers and/or nag
  13. screens, in other words: a systematic approach to get what you need.
  14. And I think it's a nice alternative to setting a bpx on a bogus serial.
  15. Some of you may already use it without knowing. Ok, here we go...
  16.  
  17. phase1: Let's prepare for take-off.
  18. Launch the prog you want to crack. Bring up the dialog that
  19. asks for the ser.nbr. After typing a bogus number in, fire up softice
  20. and set a breakpoint on an api-call of your choice - well, of course
  21. on one, that is called BEFORE the "wrong serial"-window pops up. I
  22. recommand HMEMCPY (works pretty often). Now go back to the program,
  23. hit Enter. Back in Softice (hopefully)...
  24.  
  25. phase2: Finding the "root of all evil". 
  26. You are now at the beginning of the api-call you've set the breakpoint 
  27. before. Now disable that breakpoint. Hit F12 as often as necessary 
  28. to get into the prog's PROT32 mode. Ok, now set a breakpoint on the 
  29. actual address (ie. doubleclick the asm source in code window).
  30. Now comes a repetetive task: hit F12 again, set new breakpoint on
  31. actual address, delete or disable old breakpoint. Repeat this until 
  32. the "wrong serial"-window pops up.
  33.  
  34. phase3: "Let's break in". 
  35. Ok, the nag screen showed up, but you luckily have set a breakpoint 
  36. before this happened. Re-enter your bogus serial number again. Hit
  37. Enter. If everything works fine you should now be back in Softice
  38. again at the last breakpoint before the "nagging msg". Start tracing
  39. with F10 (not F8). Every time you come to a "call" set a breakpoint
  40. on it, step over it. If the nag screen does not come up, delete or 
  41. disable the breakpoint and keep on tracing (F10). At some time the 
  42. nag screen will show up, but don't worry, you have luckily set a 
  43. breakpoint on last call before nag-screen. Enter your bogus serial 
  44. number again. Hit Enter. Back in Softice (hopefully) at the last call 
  45. before the nag screen. Step into the call (F8). Delete or disable the 
  46. breakpoint and trace on with F10. Do the same as above. At every call 
  47. set a breakpoint, trace on or step in, and so on. (I think you get the 
  48. point now). What you do is to locate the core of the nag message by 
  49. stepping deeper and deeper into calls and code. Somewhere at the core 
  50. is an api-call to SHOWWINDOW or MESSAGEBOX, etc...OR: There might be
  51. a call to a "collection of api-calls" - look at the (pushed) addresses
  52. before the calls! You might "see" what the procedure will do or 
  53. display. All we did was to focus on the "nag-core" systematically step 
  54. by step.
  55.  
  56. phase4: "Let's dive out".
  57. Now that we've found the right "level" of procedures and subroutines
  58. we do the final steps. Inspect the code before the nag screen 
  59. (api-) call. Chances are good there's somewhere a CMP between good and
  60. bad serial number. Depending on this result, the SHOWWINDOW (or 
  61. whatever) will be executed or not. If you think you have found the
  62. right CMP look at the code that is executed when good and bad 
  63. ser. nbr. are equal. There might be a SHOWWINDOW too...(but this time
  64. with "thank you for registering" ;). If there's no CMP at that 
  65. "level" you must leave the actual procedure (F12) and look in the
  66. next (higher) "hierarchy" (before the call from which you just dived
  67. out). Still no CMP? Repeat above until you find the good one. (It
  68. may also be a TEST).
  69.  
  70. phase5: "Take a deep breath".
  71. When you have the right CMP in front of you, you can either write
  72. down address of the JZ/JNZ (or whatever) to patch afterwards or
  73. you just read out good serial number (you should prefer latter one).
  74. In some cases the good and bad serials are crypted before compare.
  75. You should try to find the encryption routine for getting a valid
  76. serial number. This routine is probably placed very close to the
  77. compare. (Look at the calls before the call to the cmp procedure).
  78.  
  79. The rest is up to you!
  80.  
  81. Well, I hope this tutorial was a little help to you, good luck!
  82.  
  83. RevX
  84.  
  85.  
  86.  
  87.